Coding an Animal
'Gathering the required programs' You will need a couple of programs for the process of coding. Some are optional and thus not required, but they can make your life a lot easier. *A file archiver, such as WinRAR archiver. *A text editor, such as Notepad, which comes with windows, or optionally the downloadable Notepad ++. *Optionally a Search and Replace program, like InfoRapid Search & Replace. *Optionally a renaming program, like Flash Renamer. *A skinning program and DDS Converter of your choice. *Optionally a 3D modeling suite and / or Nifskope. Install all the programs you need. 'Gathering data' First up, a word on this chapter: It seems harder and much more complicated than it actually is. It is mainly reference, you don't have to know all of it. Even before gathering your data, you should choose a coding name. Also you have to pick an animal to base the coding upon. The coding name should start with a capital letter and should not contain foreign characters. All files we need are located in the Zoo Tycoon 2 programs folder, by default: C: Programs / Microsoft Games / Zoo Tycoon 2 / The data is stored inside .z2f files, which can be opened with a file archiver. This are the files you will encounter if you have all expansions. The first part is the file name, the second the data inside and the last part of the line notes which expansion pack the file belongs to. The higher the number gets, the newer is the file. *ai.z2f - ZT2 animal ai folder *entities.z2f - ZT2 animal entities folder *lang.z2f - ZT2 animal lang folder *ui.z2f - ZT2 animal ui folder *x001_000.z2f - Updates for ZT2 animals - ES *x002_001.z2f - Updates for ZT2 animals - ES *x003_000.z2f - Updates for ZT2 animals - ES *x100_000.z2f - ES animals and Updates for ZT2 animals - ES *x101_000.z2f - Updates for ZT2 animals and ES animals - AA *x110_000.z2f - AA animals - AA *x120_000.z2f - Updates for ZT2 animals - MM *x120_100.z2f - Updates for ES animals - MM *x121_000.z2f - Updates for AA animals - MM *x200_000.z2f - MM animals - MM *x200_100.z2f - Updates for ZT2 animals - EA *x201_100.z2f - Updates for ES animals - EA *x201_110.z2f - Updates for AA animals - EA *x202_000.z2f - Updates for MM animals - EA *x210_00.z2f - EA animals - EA There are more .z2f files in the folder but for animal coding, these are the only ones of our interest. If you have the Ultimate Collection, you will encounter these files: *x300_000 - ZT2 animals - UC *x310_000 - ES, AA and MM animals - UC *x320_000 - EA animals - UC Now onto the inner structure of .z2f files. For animals, you will usually need 4 folders: *ai *entities *lang *ui The folders contain several subfolders, which can contain subfolders again. This diagram explains the structure of each of these folders. The length of the line before the folder name indicates child structure. Comments are set in ( ). Folders are marked bold: -'ai' _-'tasks' __-'animals' ___-CODINGNAME.beh ___-CODINGNAME.tsk -'entities' _-'units' __-'animals' ___-'ai' ____-CODINGNAME.xml ____-CODINGNAME_Adult.xml ____-CODINGNAME_Adult_F.xml ____-CODINGNAME_Adult_M.xml ____-CODINGNAME_Young.xml ____-CODINGNAME_Young_F.xml ____-CODINGNAME_Young_M.xml ___-'CODINGNAME' (in the example only for the male) ____-CODINGNAME_Adult_M.bfm ____-CODINGNAME_Adult_M.nif ____-CODINGNAME_Adult_M.dds ____-CODINGNAME_Adult_M_Dirty.dds ____-CODINGNAME_Adult_M_Sick.dds ____-CODINGNAME_Adult_M_Sick_Dirty.dds ____-CODINGNAME_Adult_M_icon.dds _-'objects' (only for egg-laying animals) __-'eggs' ___-'ai' ____-CODINGNAME_Egg.xml _-'sound' __-CODINGNAME.xml -'lang' _-'XXXX' (code determining which language to use, for english language, name it 1033) __-CODINGNAME_Strings.xml -'ui' _-'zoopedia' __-'entries' ___-CODINGNAME_Entries.xml After you have created all of the folders, make a copy of the folder and call it "Basic Coding" or something similiar so you don't have to create them again when you want to code a new animal. Now it's time to find all the files. You always have to use the most recent original files. E.g., if you want to code a lemur from the ringtailed lemur, and you find a LemurRingtailed.xml in entities.z2f, x100_000.z2f, x200_100.z2f, you pick the file from x200_100.z2f. You don't have to care for the lang and ui folders files, because they are always the same and a bit hard to create, I created bases for you. You can download them here. Unpack them, rename the files and put them into your project. Download (German) Download (English) Download (Spanish) Download (Dutch) Download (Swedish) Once you have found all the files and put them into the correct places as shown in the diagram above, make sure only the models, the .bfm files and the sound .xml file '''are '''read only. 'Renaming the files' Now you can pick if you want to rename the files manually or if you want to use a renaming program. For detailed instructions on how to use the individual program, check out its help files. Replace the original coding name by your coding name. E.g. replace LemurRingtailed by LemurRedRuffed. Do this for all files. The name must differ from an existing animals coding name, otherwise it will be overwritten. 'Replacing the codename' Same as above now, only inside the files: You can choose if you want to rename the files manually or if you want to use a replacing program. For detailed instructions on how to use the individual program, check out its help files. Replace the original coding name by your coding name everywhere you found it except for the read only files. E.g. replace LemurRingtailed by LemurRedRuffed. The read only files have to be edited manually either way: *In the .bfm file, only change the first lines link to the model and the name of the graph further downstairs. Don't change the links to .bf files! *in the sound .xml file, only replace the name if there's a "' in front of it. *The .nif files are edited in Nifskope, just rename the texture if you don't want to mesh the model. 'Language files Now you open the ready made asset language file I provided above. Replace all INGAME NAME by your animals name desired to appear ingame. Replace all CODING NAME by your coding name. ATTENTION: There is a tag that MUST be lowercase letters! so it has to be: or whatever your coding name is. You can put text and facts in the places shown in the file. Additionally, you have to edit all those icons and statuses; more on that later because it is not that important. Next, the ui file has to be edited. Replace the codingname in "zoopedia_codingname" by your coding name. It has to match the one in first file and it has to be lowercase again. 'Model modification' If you are not editing the model, you will only have to rename the texture link as explained here. If you edited the model in a 3D modeling program, you may do this. 'Skinning' Category:Coding Tutorials Category:Tutorials